/**
 * @Project : algorithm-learning
 * @Author : Ruoyu Wang
 * @User : Momenta
 * @DateTime : 2024/3/16 9:30
 */

//众所周知，在一些消费支付的场合中，往往有“支付宝九五折”的优惠。
//这天小苯来到了超市购买物品，一共有 n 种物品，每种物品只能购买一个，但有的物品支持优惠活动，有的并不支持。
//恰好本超市的结账是有“支付宝九五折”优惠的，小苯的支付宝余额还剩 k 元，
//他想知道他仅使用支付宝进行支付的话，最多能买几件物品?
//
//输入描述
//  输入包含三行。
//  第一行两个正整数 n(1<= n <=10^5),k(1<= k <=10^9).
//  第二行包含n个正整数ai(1<= ai <=10^4)表每个物品的价格
//  第三行一个长度为 n 的只含有0和1的字符串，表示每个物品是否支持优惠，如果是1代表第i个物品支持优惠，否则不支持。
//输出描述
//  输出一行一个整数表示答案
//
//示例1
//输入
//5 9
//3 4 2 3 1
//11101
//输出
//4
//说明
//选择买第1、3、4、5个物品

#include <cstdio>
#include <string>
#include <algorithm>

using namespace std;

int main() {
    int n;
    double k;
    scanf("%d %lf", &n, &k);

    double a[n];
    for (int i = 0; i < n; ++i) {
        scanf("%lf", &a[i]);
    }

    char s[n];
    scanf("%s",s);

    for (int i = 0; i < n; ++i) {
        if (s[i] == '1') a[i] *= 0.95;
    }

    sort(a, a + n);

    int res = 0;

    for (int i = 0; i < n; ++i) {
        if (k > a[i]) {
            res++;
            k -= a[i];
        } else break;
    }

    printf("%d", res);
    return 0;
}